#ifndef NVS_UTILS_H
#define NVS_UTILS_H

#include "esp_err.h"
#include "nvs_flash.h"
// 定义 NVS 命名空间
#define NVS_NAMESPACE_CONFIG "nvs"
// 初始化 NVS
esp_err_t nvs_utils_init();

// 封装读取字符串的函数
esp_err_t read_nvs_str(nvs_handle_t handle, const char* key, char* value, size_t max_len);

// 封装读取 32 位无符号整数的函数
esp_err_t read_nvs_u32(nvs_handle_t handle, const char* key, uint32_t* value);

// 封装读取 64 位无符号整数的函数
esp_err_t read_nvs_u64(nvs_handle_t handle, const char* key, uint64_t* value);

// 封装读取 8 位有符号整数的函数
esp_err_t read_nvs_i8(nvs_handle_t handle, const char* key, int8_t* value);

// 封装设置字符串的函数
esp_err_t set_str(nvs_handle_t handle, const char* key, const char* value);

// 封装设置 32 位无符号整数的函数
esp_err_t set_u32(nvs_handle_t handle, const char* key, uint32_t value);

// 封装设置 64 位无符号整数的函数
esp_err_t set_u64(nvs_handle_t handle, const char* key, uint64_t value);

// 封装设置 8 位有符号整数的函数
esp_err_t set_i8(nvs_handle_t handle, const char* key, int8_t value);

#endif // NVS_UTILS_H